#ifndef SINGLEAPPLICATION_H
#define SINGLEAPPLICATION_H

/* *********************************************************************
 *
 *     放到动态库中notify捕获错误就不好使了
 *
 *
 * *******************************************************************/

#include <QObject>
#include <QCoreApplication>
#include <QtNetwork/QLocalServer>

namespace ns_yht
{

    class SingleApplication : public QCoreApplication
    {
        Q_OBJECT
    public:
        SingleApplication(int &argc, char **argv);

        bool isRunning(); // 是否已經有实例在运行

        bool notify(QObject *receiver, QEvent *event) override;

    private slots:
        // 有新连接时触发
        void _newLocalConnection();

    private:
        // 初始化本地连接
        void _initLocalConnection();
        // 创建服务端
        void _newLocalServer();
        // 激活窗口
        void _activateWindow();

        bool _isRunning;            // 是否已經有实例在运行
        QLocalServer *_localServer; // 本地socket Server
        QString _serverName;        // 服务名称
    };

}
#endif // SINGLEAPPLICATION_H